
// 导入index模板文件
import adminListEjs from "../views/adminList.ejs";
// 导入自己封装的Ajax
import axios from "../request/index.js";

// 管理员信息删除操作
async function doDel(){
    if(!confirm("确定要删除吗？")) return;
    // 获取要删除数据的id号
    //console.log(this.getAttribute("tid"));
    let id = this.getAttribute("tid");
    try {
        let {code, msg} = await axios.delete("/admin/"+id);
        if(code == 0){
            toastr.success('操作成功')
            router.go("/index/adminlist");
        } else {
            toastr.error('操作失败，原因：'+msg);
        }
    } catch (error) {
        console.log(error);
        toastr.error("操作失败");
    }
}

// 添加管理员操作
async function doAdd(){
    // 获取添加表单的数据信息，并执行Ajax提交完成管理员信息添加
    const form = document.querySelector("#adminForm");
    const mdata = {}
    mdata.adminName = form.adminName.value; 
    mdata.password = form.password.value;
    // 校验数据是否和法
    if(mdata.adminName.length == 0 || mdata.password.length == 0) {
        toastr.error("账号或密码不可以为空！");
        return;
    }
    if(mdata.password !== form.repassword.value) {
        toastr.error("两次密码不一致！");
        return;
    }
    try {
        // 执行添加
        let {code,msg} = await axios.post("/admin",mdata);
        if(code == 0){
            toastr.success('操作成功')
            form.reset(); // 重置表单
            $('#modal-default').modal('hide'); // 隐藏添加表单窗口
            router.go("/index/adminlist");
        } else {
            toastr.error('操作失败，原因：'+msg);
        }
    } catch (error) {
        console.log(error);
        toastr.error("操作失败");
    }
}

export default async function(req, res){
    // 判断是否登录，并挑战登录页
    if(!localStorage.getItem('loginname')){
        router.go("/login");
        return;
    }
    console.log(req.url);
  
    // 通过axios去加载管理员信息
    const result  = await axios.get("/admin");
    console.log(result);
    res.render(adminListEjs({adminlist:result.data}));

    // 获取页面中的标签，并替换成对应信息
    document.querySelector("#titleH1").innerHTML = "管理员列表";
    // 给添加管理员按钮绑定单击事件
    $('#addAdminBtn').click(function(){
        // 弹出模态框
        $('#modal-default').modal('show')
    })
    // 点击保存按钮事件 (为静态框中的保存按钮添加id="saveBtn"属性)
    $('#saveBtn').on('click',doAdd)

    // 获取class属性值为delBtn按钮并绑定点击事件，执行删除操作
    $(".delBtn").click(doDel);
}